package com.aqie.easy.math;

/**
 * 258. 各位相加
 */
public class AddDigits {
    public static int addDigits(int num) {
        int sum = 0;
        // 大于十则一直相加
        while (num >= 10){
            sum = 0;
            // 对当前数每位相加
            while (num > 0){
                int tmp = num % 10;
                sum += tmp;
                num /= 10;
            }
            num = sum;
        }
        return num;
    }
    /**
     * 三位数整数n=100*a+10*b+c,变化后addn=a+b+c；
     * 两者的差值n-addn=99a+9b，差值可以被9整除，说明每次缩小9的倍数
     * 那么我们可以对res=num%9，若不为0则返回res，为0则返回9
     */
    public int addDigits2(int num) {
        if (num > 9){
            num = num % 9;
            if (num == 0) return 9;
        }
        return num;
    }

    public static void main(String[] args) {
        int num = 38;
        int res = 38 % 10;      // 8
        System.out.println(res);
        System.out.println(addDigits(38));
    }
}
